//
// Created by jsjxsy on 2022/7/5.
//
#include <stdio.h>
int add_int(int a, int b){
  printf("%d + %d = %d \n", a, b, a+b);
  return a+b;
}

float add_float(float a, float b){
  printf("%f + %f = %f \n", a, b, a+b);
  return a+b;
}

void unSupport(){
  printf("unSupport type\n");
}

#define ADD(x, y) _Generic((x), \
int:add_int(x,y),\
float:add_float(x,y),\
default:unSupport())

int main(){
  ADD(1, 2);
  ADD(1.1f, 2.2f);
  ADD(3.14, 3.14);
  return 0;
}
